package org.command.main.CS3;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

import java.io.*;
import java.net.Socket;

public class AppServer {
    public static void main(String[] args) {
        try {
            Socket dbServerSocket = new Socket("localhost", 4000); // 与数据库服务器建立连接
            BufferedReader dbServerIn = new BufferedReader(new InputStreamReader(dbServerSocket.getInputStream()));
            PrintWriter dbServerOut = new PrintWriter(dbServerSocket.getOutputStream(), true);

            ServerSocket appServerSocket = new ServerSocket(3000); // 应用服务器
            System.out.println("等待客户端连接...");

            while (true) {
                Socket clientSocket = appServerSocket.accept(); // 接受客户端连接
                System.out.println("连接来自: " + clientSocket.getInetAddress());

                PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
                BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

                String choice = in.readLine();
                if (choice.equals("1")) {
                    // 查询联系人信息（通过与数据库服务器通信）
                    dbServerOut.println("QUERY"); // 发送查询请求
                    String data = dbServerIn.readLine(); // 从数据库服务器获取数据
                    out.println(data); // 将数据返回给客户端
                } else if (choice.equals("2")) {
                    // 添加联系人（通过与数据库服务器通信）
                    dbServerOut.println("ADD"); // 发送添加请求
                    // 继续处理添加联系人的逻辑，包括将数据发送给数据库服务器
                } else if (choice.equals("3")) {
                    // 修改联系人信息（通过与数据库服务器通信）
                    dbServerOut.println("UPDATE"); // 发送修改请求
                    // 继续处理修改联系人信息的逻辑，包括将数据发送给数据库服务器
                } else if (choice.equals("4")) {
                    // 删除联系人（通过与数据库服务器通信）
                    dbServerOut.println("DELETE"); // 发送删除请求
                    // 继续处理删除联系人的逻辑，包括将数据发送给数据库服务器
                } else {
                    out.println("无效选择");
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
